package com.gsnd.gsnd21study.exception;

import com.gsnd.gsnd21study.utils.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 全局异常处理器
 * 主要作用就是捕获到异常之后，处理返回对应的json对象，而不是空白页面
 */
@RestControllerAdvice
public class GlobalExceptionHandler {
    // 标记要捕获哪些异常
    @ExceptionHandler(Exception.class)
    public Object handleException(Exception e) {
        Result result = null;
        if(e instanceof ServiceException) {
            result = Result.failure(((ServiceException) e).getResultCode(),"请检查项目日志找出异常");
        }else {
            // 这里我们希望给到的是能够自定义的code和msg
            // 只要是你写的代码有问题（出现异常），前端拿到的状态码一定是500
            result = Result.customResultCode(500,e.getMessage());
        }
        return result;
    }
}
